home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet internetowy / Rozne / HTTrack 3.40-2 / httrack-3.40-2.exe / {app} / html / div / search.sh
Text File  |  2002-09-26  |  2KB  |  61 lines

  1.  
  2. #!/bin/sh
  3.  
  4. # Simple indexing test using HTTrack
  5. # A "real" script/program would use advanced search, and 
  6. # use dichotomy to find the word in the index.txt file
  7. # This script is really basic and NOT optimized, and
  8. # should not be used for professional purpose :)
  9.  
  10. TESTSITE="http://localhost/"
  11.  
  12. # Create an index if necessary
  13. if ! test -f "index.txt"; then
  14.     echo "Building the index .."
  15.     rm -rf test
  16.     httrack --display "$TESTSITE"  -%I -O test
  17.     mv test/index.txt ./
  18. fi
  19.  
  20. # Convert crlf to lf
  21. if test "`head index.txt -n 1 | tr '\r' '#' | grep -c '#'`" = "1"; then
  22.     echo "Converting index to Unix LF style (not CR/LF) .."
  23.     mv -f index.txt index.txt.old
  24.     cat index.txt.old|tr -d '\r' > index.txt
  25. fi
  26.  
  27. keyword=-
  28. while test -n "$keyword"; do
  29.     printf "Enter a keyword: "
  30.     read keyword
  31.  
  32.     if test -n "$keyword"; then
  33.         FOUNDK="`grep -niE \"^$keyword\" index.txt`"
  34.  
  35.         if test -n "$FOUNDK"; then    
  36.             if ! test `echo "$FOUNDK"|wc -l` = "1"; then
  37.                 # Multiple matches
  38.                 printf "Found multiple keywords: "
  39.                 echo "$FOUNDK"|cut -f2 -d':'|tr '\n' ' '
  40.                 echo ""
  41.                 echo "Use keyword$ to find only one"
  42.             else
  43.                 # One match
  44.                 N=`echo "$FOUNDK"|cut -f1 -d':'`
  45.                 PM=`tail +$N index.txt|grep -nE "\("|head -n 1`
  46.                 if ! echo "$PM"|grep "ignored">/dev/null; then
  47.                     M=`echo $PM|cut -f1 -d':'`
  48.                     echo "Found in:"
  49.                     cat index.txt | tail "+$N" | head -n "$M" | grep -E "[0-9]* " | cut -f2 -d' '
  50.                 else
  51.                     echo "keyword ignored (too many hits)"
  52.                 fi
  53.                     fi
  54.         else
  55.             echo "not found"
  56.         fi
  57.  
  58.     fi
  59. done
  60.  
  61.